# print('你好')
# python练习 -20230213-
# 字符串str

# 使用%格式化字符串

# nums = 20230213
# lunarCalendar = '正月二十三烫'
# num1 = 2.334
#
# str1 = '[%d][农历%6.5s]:%2f' % (nums, lunarCalendar, num1)  # 经过测试，显示宽度如果低于本身长度视为无效，小数点对字符串和浮点数有效 默认右对齐
# print(str1)
# dict1 = {'name': '张三', 'age': 19}
# print("%(name)s-%(age)d" % dict1)  # 对于字典类型，需要前面加上(键) - 即可
# 对于%的个人理解:首先确定是哪个-即字典类型 然后对其方式(默认右对齐)、所占宽度、浮点数就指定小数点后精度-字符串就从左开始切割多少、指定格式 字符串后跟上%后面跟上格式化对应的变量，多个就用元组包含。

# a1 = [1, 2, 3, '张三']
# a2 = (19, 'age')
# print('{}-{}'.format(a1[3], a2[0]))
# print('{[3]}-{[0]}'.format(a1, a2))
# print('{name}-{age}'.format(name='张三', age=19))
# nums = 20230213
# lunarCalendar = '正月二十三烫'
# num1 = 2.334
# print('[{1:<+10}][{2:.5}]:{0:.3}'.format(num1, nums, lunarCalendar))  # 对齐方式：补充字符+对齐方式+对齐格式   宽度(如果小于变量的宽度，不会影响) .

# input 和eval的使用
# num1 = eval(input('请输入两个数字,下面进行加法操作\n'))
# num2 = int(input())
# print('得到的结果为{}'.format(num1 + num2))
# print(num1)

# python程序结构
# 3 > 2 ? 2 : 3
# a = 3
# b = 2
# print(b if a > b else a)
# for ar in 'abcd':
#     print(ar, end=' ')

# a 和 b的值相互交换: tmp = b; b = a; a = tmp
# a = 1
# b = 2
# a, b = b, a  # 将a的值保护起来，然后 a = b, b = 保护起来的a
# print(a, b, sep=' ')

# 闭包的使用
# def test(name='test'):
#     def _test():
#         print(name + '你好!')
#     return _test
#
#
# test('王二')()
# test('张三')()

# 面向对象编程

# class Test:
#     def __init__(self, year, month, day):
#         self.__year = year
#         self._month = month
#         self._day = day
#
#     def Print(self):
#         print(self.__year, self._month, self._day, sep='-')
#
#
# t = Test(2023, 2, 14)
# t.Print()

# class Animal:
#     name = 'Animal'
#     def __init__(self):
#         self._name = 'self.Animal'
#         print("父类的构造方法")
#
#     def show(self):
#         print("父类的成员方法")
#
#     @classmethod
#     def test1(cls):
#         print("父类的类方法")
#
#     @staticmethod
#     def test2():
#         print("父类的静态方法")
#
#
# class Cat(Animal):  # 继承动物类
#     def __init__(self):
#         super().__init__()
#         print("子类的构造方法", Animal.name, self._name)
#
#     def test(self):
#         print("子类的成员方法")
#
#
# c = Cat()

# class Test:
#     a = 10
#
#     def test1(self):
#         print(self.a)
#
#     @classmethod
#     def test2(cls):
#         print(cls.a)
#
#     @staticmethod
#     def test3():
#         print()  # 无法调用 cls类属性没有 self此类实例化的对象也无，无法调用类属性a哦~

# file操作
# f1 = open(r'.\test.txt', mode='w', encoding='utf-8')  # 注意在字符串外面的r符号，表示此字符串内转移字符为原本字符的意思 win里文件路径间隔都是反斜杠，可以很好的利用这个特性
# f1.write('你好python文件io操作')
# f1.close()

# for i in range(5, 0, -1):
#     print(i, end=' ')

# a = 2
# b = [1, 2, 3]
# if b[3] > 2 and a + 1 != 3:
#     print(1)
# else:
#     print(2)
